from idlelib.iomenu import encoding

wf = open("Project Resources/text.txt", "w", encoding ="UTF-8")
for i in range(3):           # 往文件中写入3个“hello”
    print(f"当前指针的位置是{wf.tell()}")       # 查询当前指针的位置
    wf.write("hello\n")
wf.close()

# 指针的移动操作
# 需求：在第一个hello的后面添加一个：world
wp = open("Project Resources/text.txt", "r+", encoding ="UTF-8")  # 在指定位置写入数据会造成覆盖
# seek(偏移量,起始位置):起始位置为：[0:文件开头,1:当前位置,2:文件结尾位置]
# 把指针移动到第一个hello的后面
wp.seek(5,0)    # 先确定起始位置再确定偏移量
# 把第一个hello后面的内容先读取出来（防止数据被覆盖丢失）
after = wp.read()  #read()是从当前位置开始读，读完整个文件后指针在文件的末尾
# 把指针又移动到第一个hello的后面
wp.seek(5,0)
wp.write("world"+after)   # 写入数据后将先读取的被覆盖的后面数据接上
wp.close()

# with语句操作文件流,无需close()关闭，自动释放资源
with open("Project Resources/text.txt", "w+", encoding ="UTF-8") as f:
    for i in range(10):
        f.write("hello\n")

"""
write(内容)  每次都会将原来的内容清空，然后写当前的内容
writelines(Iterable)  没有换行效果，需要自己加"\n"
如果mode="a",将会在原文件后追加内容，不清楚原文件内容 
"""

s = """
The Great Way encompasses fifty,
the heavenly changes unfold through forty-nine, 
and humans elude the remaining one.
"""
# 在文本中写入内容
stream = open("Project Resources/text.txt", "a")
stream.write(s)
stream.close()

# 文件复制
with open(r"D:\图片\三体图片.jpg","rb") as picture:    # open函数只能打开文件，如果有多个文件操作需要引入os模块
    vessel = picture.read()

    with open(r"E:\Kimi智能助手\三体图片.jpg","wb") as w_stream:
        w_stream.write(vessel)

print("文件复制成功！")